﻿// testfor.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include<string>
using namespace std;


//int main(int argc, char *argv[], char *env[])
//{
	/*
	bool is_exit{ false };
	int index = 0;
	while (!is_exit) {
		index++;
		if (index > 10)
			is_exit = true;
		cout << index << " ";
	}
	*/
	

	/*
	for (int i = 0; env[i] != nullptr; i++) {
		cout << env[i] << endl;
   }
   */
	/*
	int index = 0;
	while (index++ < 10)
		cout << index << "" << endl;
	cout << endl;

	index = 0;
	while (int i = ++index)
	{
		cout << index << "";
		if (i > 10)break;
	}
	*/

	
//}

int main()
{
	
	{
		bool is_exit{ false };
		while (!is_exit)
		{
			string cmd; // 用户输入的命令
			string execcmd; // 执行的命令
			cout << "xshell>>";
			cin >> cmd;
			if (cmd == "ls")
			{
				execcmd = "dir";
				string arg;
				if (cin.rdbuf()->in_avail() > 1) {
					// 缓冲区有内容，不只有\n
					// 处理ls c: 这样的情况
					cin >> arg;
					execcmd += " " + arg;
				}
				system(execcmd.c_str());
			}
			else if (cmd == "exit" || cmd == "quit")
			{
				is_exit = true;
				continue;
			}
			else {
				cerr << "命令" << cmd << "不支持！" << endl;
			}
		}
		return 0;
	}
	
	// system 执行系统命令
	//system("cd");

	string cmd = "dir";
	// system不支持string类型，需要进行转换
	//system(cmd.c_str());
	// 接收用户输入的命令，再用system执行
	cout << ">>";
	cin >> cmd;
	
	cout << "in_avail=" << cin.rdbuf()->in_avail() << endl;
	if (cin.rdbuf()->in_avail() > 1) {
		//缓冲区有内容，不只有\n
		string tmp;
		cin >> tmp;
		cmd += " " + tmp;
	}
	cout << "cmd:" << cmd << endl;
	// pause等待用户的输入
	system("pause");

	return 0;
}


// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件，或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来，若要再次打开此项目，请转到“文件”>“打开”>“项目”并选择 .sln 文件
